Apache Virtual Hosts op Ubuntu
Home

Titel

Apache Virtual Hosts op Ubuntu

Je kan virtuele hosts gebruiken (vergelijkbaar met serverblokken in Nginx) om configuratiedetails in te kapselen en meer dan één domein vanaf een enkele server te hosten.

Stappenplan

  1. Maak de directory voor uw_domein We maken een directorystructuur binnen /var/www voor een site met uw_domein, waarbij /var/www/html op zijn plaats blijft als de standaarddirectory voor een verzoek van een client niet overeenkomt met andere sites. Daarin maken we een public_html submap zodat we een map hoger hebben om configuratiebestanden in te plaatsen:
    sudo mkdir /var/www/your_domain
    sudo mkdir /var/www/your_domain/public_html
    
    bijvoorbeeld:
    sudo mkdir /var/www/epreuvedartiste
    sudo mkdir /var/www/epreuvedartiste/public_html
    
  2. Ken de eigendomsrechten van de directory toe aan de eigenaar met de omgevingsvariabele $USER:
    sudo chown -R $USER:$USER /var/www/your_domain

    Bijvoorbeeld:

    sudo chown -R epreuvedartiste:epreuvedartiste /var/www/epreuvedartiste
    
  3. Om ervoor te zorgen dat de eigenaar de bestanden kan lezen, schrijven en uitvoeren terwijl bezoekers van de website alleen lees- en uitvoeringsrechten hebben, voer je de volgende opdracht in:
    sudo chmod -R 755 /var/www/your_domain
    
    Bijvoorbeeld:
    sudo chmod -R 755 /var/www/epreuvedartiste
    
  4. Om Apache deze inhoud van deze map te laten serveren, is het nodig om een virtueel hostbestand met de juiste richtlijnen te maken. In plaats van het standaard configuratiebestand op /etc/apache2/sites-available/000-default.conf rechtstreeks te wijzigen, maken we een nieuw bestand /etc/apache2/sites-available/uw_domein.conf:
    sudo nano /etc/apache2/sites-available/your_domain.conf
    
    Bijvoorbeeld:
    sudo nano /etc/apache2/sites-available/epreuvedartiste.be.conf
  5. Plak in het bestand de volgende configuratieblok, het is vergelijkbaar met het standaard, maar bijgewerkt voor onze nieuwe directory en domeinnaam:
    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName your_domain
        ServerAlias www.your_domain
        DocumentRoot /var/www/your_domain
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
    Bijvoorbeeld
    We voegen hier geen ServerAlias toe omdat het om een subdomein gaat. De map is de public_html map in de epreuvedartiste rootmap:
    <VirtualHost *:80> 
        ServerAdmin webmaster@localhost 
        ServerName epreuvedartiste.modernways.be 
        DocumentRoot /var/www/epreuvedartiste/public_html 
        ErrorLog ${APACHE_LOG_DIR}/error.log 
        CustomLog ${APACHE_LOG_DIR}/access.log combined 
    </VirtualHost>
    
  6. De standaardtoegang voor <Directory "/"> is om alle bestanden toegangkelijk te maken in de browser. Dit betekent dat Apache httpd elk bestand zal serveren dat in een URL is opgegeven en op de server wordt gevonden. Het wordt aanbevolen om dit te veranderen met een blok zoals:
    <Directory "/var/www/epreuvedartiste/public_html">
      Require all denied
    </Directory>
    
    Je kan dit vervangen voor mappen die je wel toegankelijk wilt maken. Zie de pagina Beveiligingstips voor meer details.
  7. Een htaccess-bestand
    Het .htaccess-bestand in Apache is een tool die configuraties op directory- en submapniveau mogelijk maakt. Door .htaccess te gebruiken, kan je websitemachtigingen configureren zonder de serverconfiguratiebestanden te wijzigen. In de <Directory> section moet je toestemming om de instellingen van de Apache server te kunnen overschrijven:
    <Directory "/var/www/epreuvedartiste/public_html">
      AllowOverride All
      Require all denied
    </Directory>
  8. Je moet het subdomein nu enablen:
    sudo a2ensite epreuvedartiste.be.conf
  9. Je kan die weer disablen met:
    sudo a2dissite epreuvedartiste.be.conf
  10. Schakel de standaardsite uit die is gedefinieerd in 000-default.conf:
    sudo a2dissite 000-default.conf
  11. We testen testen op configuratiefouten:
    sudo apache2ctl configtest
  12. Je zou de volgende uitvoer moeten ontvangen:
    Uitvoer
    Syntaxis OK
  13. Start Apache opnieuw om uw wijzigingen door te voeren:
    sudo systemctl restart apache2

A Virtual Host is - in it's simplest form - configuration for a host -- your sub-domain.

You're going to want to access your server via SSH - PuTTy is an excellent program, however Digital Ocean offer a browser-based solution - use what's best for you.

(Assuming you have Apache installed already)

When using Apache 2 the .conf file should be in /etc/apache2/sites-available/.

Now update your Apache2 configuration.

We maken een bestand met de naam tower-pattern.conf met daarin:

<VirtualHost *:80>
    ServerName tower-pattern.anormapart.com
    DocumentRoot /var/www/tower-pattern.anormapart.com/
    ServerAdmin jef.inghelbrecht@inantwerpen.com
    <Directory /var/www/tower-pattern.anormapart.com>
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Je moet het subdomein nu enablen:

sudo a2ensite tower-patern.conf

Op deze site staat het anders: Enable the site in apache with:

sudo a2ensite sub.yourdomain.com

(or whatever you named your site in the config)

Je kan die weer disablen met:

sudo a2dissite tower-patern.conf

Sla dit bestand op in de sites-available map. De extensie moet conf zijn!

Now create /var/www/tower-pattern.anormapart.com and restart Apache2:

mkdir -p /var/www/towerpattern.anormapart.com
sudo service apache2 restart

Om .htaccess te laten werken in een submap

In de <Directory> section van zowel apache2.conf als van de tower-pattern.conf moet je toestemming om de instellingen van de Apache server te kunnen overschrijven:

apache2.conf:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

tower-pattern.conf:

    <Directory /var/www/tower-pattern.anormapart.com>
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

CORS on Apache

To add the CORS authorization to the header using Apache, simply add the following line inside either the <Directory>, <Location>, <Files> or <VirtualHost> sections of your server config (usually located in a *.conf file, such as httpd.conf or apache.conf), or within a .htaccess file:

Header set Access-Control-Allow-Origin "*"

To ensure that your changes are correct, it is strongly reccomended that you use

apachectl -t

to check your configuration changes for errors. After this passes, you may need to reload Apache to make sure your changes are applied by running the command sudo service apache2 reload

or

apachectl -k graceful

.Altering headers requires the use of mod_headers. Mod_headers is enabled by default in Apache, however, you may want to ensure it's enabled by run

a2enmod headers

Note: you can also use add rather than set, but be aware that add can add the header multiple times, so it's likely safer to use set.

Subdomain aanmaken DNS provider

Onder ondertitel

, Apr 21, 2016

Maak een sub-domain

Creating the sub-domain is a CNAME record - setting it up is much like the A record, but instead of the @ as the hostname, we put the subdomain we want - for example; blog as the hostname will equate to blog.example.com.

JI
2021-11-11 08:40:37